package com.hyjr.RxTask.rabbitmq;

import com.alibaba.fastjson.JSON;
import com.hyjr.common.utils.LogUtils;
import com.rabbitmq.client.Channel;
import com.rabbitmq.client.Connection;

/**
 * @program: rabbit-learn
 * @description: 生产者
 * @author: 535504
 * @create: 2018-04-26 15:02
 **/
public class ProducerUtil {
	
	public static void producer(String queueName, Object data) throws Exception {
		// 获取连接
		Connection connection = ConnectionUtil.getConnection();
		// 创建通道
		Channel channel = connection.createChannel();
		/*
		 * 声明（创建）队列 参数1：队列名称 参数2：为true时server重启队列不会消失
		 * 参数3：队列是否是独占的，如果为true只能被一个connection使用，其他连接建立时会抛出异常
		 * 参数4：队列不再使用时是否自动删除（没有连接，并且没有未处理的消息) 参数5：建立队列时的其他参数
		 */
		channel.queueDeclare(queueName, false, false, false, null);
		String message = JSON.toJSONString(data);
//		String message = JsonUtil.toJson(data);
		channel.basicPublish("", queueName, null, message.getBytes());
		LogUtils.debug("RabbitMQ，将数据放入到队列，队列名：" + queueName + "，队列数据：" + message);
		channel.close();
//		 connection.close();
	}

}
